
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project ：图灵学习 
@File    ：2.进程的启动方式.py
@IDE     ：PyCharm 
@Author  ：ChenLiGao
@Date    ：2024-11-05 14:42
'''
"""
    Windows
    MacOS
    Linux
     windows在启动进程是使用的spawn模式
     macOS在启动进程使用的是spawn模式，也支持fork模式
     linux在启动进程是使用的fork模式
     
     在python中使用函数入口来确定当前操作系统启动进程的方式
     也可以指定启动方式，但是windows系统不支持fork启动方式
     
     
     fork模式是当前任务的代码和状态整个赋值一份载入到一个新的进程中
     spawn模式是船舰一个新的子python解释器去运行当前任务
     
并发：在同一时刻，只有一个任务被执行，执行方式是任务随机切换，只要切换的速度够快，那么执行的效果类似并行
并行：在同一时刻，有多个任务一起执行，执行单位是cpu核心，只要在cpu核心数量范围内，则无需切换任务
 操作系统执行的任务数量是远远大于核心数量的
"""
import multiprocessing # 进程：标准库
import time


def work1():
    for i in range(5):
        print(f"这是任务1.......{i}")
        time.sleep(1)

def work2():
    for i in range(5):
        print(f"这是任务2.......{i}")
        time.sleep(1)

# 进程是可以指定启动方式的
multiprocessing.set_start_method("spawn")

p1 = multiprocessing.Process(target=work1)
p2 = multiprocessing.Process(target=work2)
p1.start()
p2.start()


